package com.lyq.utils;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBUtils {

    //数据库账号
    private final String account;

    //数据库密码
    private final String password;

    //数据库名
    private final String db;

    //数据库连接对象
    public static Connection con = null;

    /**
     * 构造函数：初始化数据库连接所需的信息，并调用 init() 方法建立连接
     * @param account 数据库用户名
     * @param password 数据库密码
     * @param db 数据库名
     */
    public DBUtils(String account, String password, String db) {
        this.account = account;
        this.password = password;
        this.db = db;

        // 调用初始化方法，加载驱动并连接数据库
        init();
    }

    /**
     * 加载 JDBC 驱动并建立数据库连接
     *  1. 加载 MySQL JDBC 驱动类
     *  2. 使用 DriverManager 获取数据库连接
     */
    private void init(){

        //加载 JDBC 驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            System.out.println("加载驱动成功！");
        } catch (Exception e) {
            System.out.println("加载驱动失败！");
            return;
        }

        // 建立数据库连接
        try {
            String uri="jdbc:mysql://localhost:3306/"+db+"?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8";
            con = DriverManager.getConnection(uri,account,password);
            System.out.println("数据库连接成功！");
        } catch (Exception e) {
            System.out.println("数据库连接失败！");
        }
    }
}
